
// find 接收一个方法作为参数，方法内部返回一个条件

var users = [
    {
        id: 1,
        name: '张三'
    },
    {
        id: 2,
        name: '张三'
    },
    {
        id: 3,
        name: '张三'
    }
]


// 封装find
Array.prototype.myFind = function(conditionFunc) {
    for(var i = 0; i < this.length; i++) {
        if (conditionFunc(this[i], i)) {
            return this[i]
        }
    }
}
var res = users.myFind(function(item, index) {
    return item.id === 2
})


// 封装findIndex

Array.prototype.myFindIndex = function(conditionFunc) {
    for (var i = 0; i < this.length; i++) {
        if (conditionFunc(this[i], i)) {
            return i
        }
    }
}

var index = users.myFindIndex(function(item, index) {
    return item.id === 2
})

console.log(res, index)